//index.js
//获取应用实例
const app = getApp()
var appData = app.globalData

Page({
    data: {
        user_id: '', // 用户ID
        isLoading: true, //加载中
        hasLink: false, //是否有自己点圈子
        auth_flag: false, //授权弹窗
        groupList: [], // 我创建的圈子
        groupNum: 0,
        joinNum: 0
    },
    onLoad: function () {
        console.log('首页')
        var _this = this

        wx.showToast({
            title: '加载中',
            icon: 'loading',
            mask: true
        }) 

        // 获取用户id
        let user_id = wx.getStorageSync('user_id')
        let account = wx.getStorageSync('account')
        _this.setData({user_id: user_id})
        
        // 获取微信用户信息
        wx.getSetting({
            success: res => {
                if (res.authSetting['scope.userInfo']) {
                    _this.setData({ auth_flag: true })
                    // 更新用户信息
                    _this.updateUserInfo()
                } else {
                    console.log('没有授权')
                    _this.setData({ 
                        auth_flag: false,
                        isLoading: false
                    })
                }
            }
        })
    },
    // 用户点击授权
    start: function (res) {
        let that = this
        let _this = this
        let user_id = wx.getStorageSync('user_id')
        let account = wx.getStorageSync('account')
        console.log(res)
        if (res.detail.errMsg == 'getUserInfo:ok') {
            console.log('用户同意授权');
            that.setData({ auth_flag:  true })
            // 更新用户信息
            _this.updateUserInfo()
        } else if (res.detail.errMsg == 'getUserInfo:fail auth deny') { // 当用户点击拒绝时
            wx.showModal({
                title: '提示',
                content: '需要授权才能一起玩耍哟',
                showCancel: false,
                success: function (res) {
                    if (res.confirm) {
                        console.log('用户点击确定')
                    }
                }
            })
        }
    },
    // 更新用户信息
    updateUserInfo: function () {
        let _this = this
        let account = wx.getStorageSync('account')
        // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
        wx.getUserInfo({
            success: res => {
                console.log('拉取获取用户微信信息')
                // 可以将 res 发送给后台解码出 unionId
                console.log(res.userInfo)
                let userInfo = res.userInfo
                // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                // 所以此处加入 callback 以防止这种情况
                if (_this.userInfoReadyCallback) {
                    _this.userInfoReadyCallback(res)
                }
                // 更新用户信息
                wx.request({
                    url: appData.apiUrl + 'user/regist',
                    data: {
                        openid: account,
                        name: userInfo.nickName,
                        picture: userInfo.avatarUrl
                    },
                    success: function (res) {
                        console.log('更新用户信息')
                        console.log(res)
                        // 获取用户圈子信息q
                        _this.getLingInfo()
                    }
                })
            }
        })
    },
    // 获取用户圈子信息
    getLingInfo: function () {
        let _this = this
        let user_id = this.data.user_id
        wx.request({
            url: appData.apiUrl + 'user/maininfo',
            data: {
                user_id: user_id
            },
            success: function (res) {
                console.log('获取首页信息,用户圈子')
                console.log(res)
                if (res.data.status) {
                    let data = res.data.data
                    _this.setData({
                        groupList: data.groupList,
                        joinList: data.joinList,
                        groupNum: data.groupNum,
                        joinNum: data.joinNum
                    })
                    if (parseInt(data.groupNum) + parseInt(data.friendNum) > 0) {
                        _this.setData({
                            hasLink: true
                        })
                    }
                    _this.setData({
                        isLoading: false
                    })
                    wx.hideLoading()
                }
            }
        })
    },
    // 跳转到创建圈子
    create: function () {
        let userInfo = appData.userInfo
        wx.navigateTo({
            url: '/pages/create/create?user_id=' + userInfo.id
        })
    }
})
